

//define a few colours for the text.
#define BLUE  9 
#define GREEN  10
#define RED  12
#define YELLOW  14
#define WHITE  15
#define GREY  7

enum typeOfItem{ POTION, HEAD_ARMOR,LEG_ARMOR ,CHEST_ARMOR ,FOOT_ARMOR ,ARM_ARMOR, HELD_ARMOR, WEAPON, QUEST_ITEM, OTHER };
enum typeOfBag{ NONE, SMALL_BAG=5, MED_BAG=10, LARGE_BAG=15, LEGENDARY_BAG=20, BACKPACK=10 };
enum questStatus{ UNDESCOVERED ,DESCOVERED ,PART_1 , PART_2, PART_3, PART_4, PART_5, COMPLETE, REWARDED };
enum element{ FIRE, WATER, ICE, GROUND, AIR, HOLY, DARK, ELECTRIC, NON_ELEMENTAL, SKILL };
enum cardPosition{ SIDE, TOP_LEFT, TOP, TOP_RIGHT, LEFT, MIDDLE, RIGHT, BOTTOM_LEFT, BOTTOM, BOTTOM_RIGHT };
enum cardOwnership{ MINE, OPPONENTS };

int numberOfBagSlots; //use this to validate whether teh character can pick up another item or not
					  //it will be worked out by adding the bag types in teh bag slots
struct location
{
	string area;

	string areaDescription;

	string nameOfAreaOfInterest;
	string areaOfInterestDescription;

	int xPosition;
	int yPosition;
	
	bool north;
	bool south;
	bool west;
	bool east;
};

struct item
{
	typeOfItem type;

	int price;
	int quantity;

	string name;
	string description;

	int levelRequirement;

	int bonus; // attack bonus? damage bonus?
	int effect; //hp + 50 for a potion?,
	int maxEffect;

	int rarerity;
};

struct quest
{
	int QuestNumber;

	int colour;

	string name;

	questStatus status;

	string dialogue;

	string description1;
	string description2;
	string description3;
	string description4;
	string description5;

	item reward1;
	item reward2;
	item reward3;

	int expReward;
	int goldReward;
};

struct skills //spells + skills ftw
{
	string name;
	string skillDescription;
	string castingDescription;

	int spellLevel;
	int spellExp;

	int mpCost;
	int damage;

	element type;
};

struct card
{
	string name;
	int quantity;

	cardPosition position;
	
	int topStat;
	int bottomStat;
	int rightStat;
	int leftStat;

	cardOwnership ownership;
};

struct character // a struct for enemies and the player
{	
	string name;
	string description;
	int HP;
	int currentHP;
	int MP;
	int currentMP;
	int strength, magic, agility;
	int defence;
	int exp; 
	int level;

	int minAttack;
	int maxAttack;

	int gold;

	item mainHand;
	item offHand;

	item armorHead;
	item armorArms;
	item armorChest;
	item armorLegs;
	item armorFeet;

	item inventory[100];
	typeOfBag bagSlots[5]; // you can carry 0-5 bags at any time.

	int fishingLevel;
	int miningLevel;
	int cookingLevel;
	int blackSmithLevel;
	int treeLevel;
	int woodWorkLevel;

	quest log[100];
	skills skills[30];
	card cards[100];
	
	location currentLocation;
};

//declare some of the things that are going to be used in the game!

//declare player
character player;

//declare noob items(in this case armor) :)
item clothCap;
item clothShirt;
item clothBoots;
item clothTrousers;
item clothGloves;

//leather armor set - in progress
item leatherCap;

//declare noob weapon
item rustySword;
item rustySheild;

//declair the first quest
quest banditRaid;

//declair some locations
location forest[3][3]; //locations in X and Y

//declair some spells
skills heal1;